package com.structural.decorator.display;

/**
 * <p></p>
 *
 * @author jiuhua.xu
 * @version 1.0
 * @since JDK 1.8
 */
public class FullBorder extends Border {

    public FullBorder(Display display) {
        super(display);
    }

    @Override
    public int getColumns() {
        return 1 + display.getColumns() + 1;
    }

    @Override
    public int getRows() {
        return 1 + display.getRows() + 1;
    }

    @Override
    public String getRowText(int row) {
       if (row == 0) {
           return "+" + makeLine('-', display.getColumns()) + "+";
       } else if (row == display.getRows() + 1) {
           return "+" + makeLine('-', display.getColumns()) + "+";
       } else {
           return "|" + display.getRowText(row-1) + "|";
       }
    }

    private String makeLine(char c, int cnt) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < cnt; i++) {
            sb.append(c);
        }
        return sb.toString();
    }
}
